This invention relates generally to computing systems in which image data is made available to a plurality of users by means of a computing system architecture of the client/server type. More particularly, the invention concerns the determination of views on images by clients and the provision from a server of image data necessary to generate those views. In particular, the invention concerns the two-way streaming of data between clients and servers whereby clients stream requests for the provision of image data necessary to the generation of current views and requests for cancellation of image data previously requested as being necessary to previous views, but no longer needed. In the invention, a server responds to requests for provision and requests for cancellation from a plurality of clients by continually streaming to the clients image data for which requests have been received with no subsequent requests for cancellation.
Client/server architecture is a form of computer system organization in which computers or processors termed xe2x80x9cclientsxe2x80x9d receive services from computers or processors termed xe2x80x9cserversxe2x80x9d. Computing and storage tasks are divided between clients and servers in such a system, with servers being allocated certain tasks that are provided to clients as part of an overall computing scheme.
One particular application to which client/server computing architecture is particularly suited is the provision of access to large amounts of imagery where one or more clients invest users with the ability to request access to images through servers. In particular, enterprises that archive many images and services that provide access to large, detailed images benefit from client/server organization of computing resources by allocation of compression, storage, access to, and retrieval of image data through or by way of servers. Thus many clients can have access very quickly to large databases of images that are maintained by servers. Such images can include medical images, (derived by imaging processes such as X-ray, CRT, MfU, sonic imaging etc.), microfiche and microfilm, huge images of the Earth""s surface, large archives of commercial images (real estate maps, multiple listings, product and service catalogs), three dimensional seismic images, and so forth. The imagery may comprise single images, arrays of photographs or other images, and video images. Such imagery may be multi-dimensional, and it may be static, incrementally moveable (drawing programs), or moving (TV, video, movies). In such applications, it is particularly desirable to provide users with fast access to images in such a way as to permit views to be generated on the images and supported by functions such as roaming and zooming.
An exemplary instance of client/server access to imagery would be provision of access to a database of very large images of the earth through a website on the World Wide Web, using network protocols such as HTTP, UDP, TCP/IP, WAP, and so on. Consider a client establishing communications with a server through a website in order to enable a user to view such very large images by means of the ability to roam over those images and to zoom in and out on regions of the images. An immediate requirement to satisfy such user needs is to serve such imagery to a client that is to display and/or process the imagery as it is being served from a server.
Such service can be provided by sending to a client a complete image in a standard format that enables some compression of the image. However, network and communications limitations would immediately restrict the size of an image that could be sent, especially when using slow communications channels such as modems or wireless networks.
A more modem image compression technique such as a discrete wavelet transform (DWT) provides better compression of images. However if an entire image is being served to a client, a substantial communications capacity between the client and the server and large storage capability at the client must still be provided.
It is possible to enable the client to request only a region and a level of detail (resolution) to be extracted from a larger image through the server. This permits selection of areas of images to be displayed and processed on the client. However, extraction, preparation, and processing of the requested image areas by the server can impose a significant load on the computational capacity of the server. As a result, such a scheme scales very poorly in that a server so endowed will rapidly approach a limit in the number of clients that it can handle.
Accordingly, there is a problem in utilization of the client/server architecture in the prior art to provide a large number of clients with fast, highly functional access to imagery through servers.
This invention solves the problem of the prior art by endowing clients with the functionality to set views on an image and to determine the image data necessary to generate those views. The clients are enabled to identify the image data that is necessary to generate the views. In this invention, the clients send requests to servers for the image data that is necessary to generate the views. At the same time, the clients are enabled to respond to user requests to change and/or update such views. In order to enhance the efficiency of communications between clients and servers, the invention enables the clients to issue requests to servers to cancel the provision of image data previously determined to be necessary to views that have been changed, under the condition that the image data necessary to those changed views has not yet been provided to the clients. In this regard, a server sees from the clients a steady stream of requests for provision of identified image data and requests for cancellation of previously-requested, but untransmitted and unneeded image data. The server serves those requests by transmitting to the clients image data for which provision requests have been received but for which cancellation requests have not been received.
As a result of such streaming the invention enables the use of progressively-transmitted image data from server to client, whereby a client can start generating a view as soon as some image data has been received, without having to wait for receipt of all image data necessary to generate the view.
The invention permits clients to extract portions of images through servers without heavily taxing the computing resources of the servers, which expands the number of concurrent client requests that can be served without significant degradation of server performance.
The invention enables a user to specify to a client a view on an image in terms of region and level of detail and permits the client to identify the image data necessary to generate that view.
The invention enables clients to interact quickly with a server in order to update imagery in the shortest possible time.
The invention provides a client with an image cache that permits the caching of a view at the client, thereby maximizing the efficiency of communications between clients and servers.
The invention enables a client to continually change and/or update a view even when all of the image data necessary to generate the changed or updated view has not been received from a server.